#include<stdio.h>
#include<string.h>

#define N 10
int mystrlen(const char *p);
char *mystrncpy(char *dest, const char *src, size_t n);
char *mystrncat(char *dest, const char *src, size_t n);
int mystrcmp(const char *s1, const char *s2);

int main(int argc, char *argv[])
{
	char str1[100]="helloworlddream";
	char str2[N];
	char str3[N] = "hela";
	int len = mystrlen(str1);
	int cmp;
	printf("字符串的长度： %d\n", len);
	
	//printf("字符串的长度： %ld\n", strlen(str1));
	mystrncpy(str2, str1, 9);
	puts(str2);

	mystrncat(str1, str2, 9);
	puts(str1);

	cmp = mystrcmp(str1, str2);
	printf("%d\n",cmp);
	return 0;
}

int mystrlen(const char *p){
	int len = 0;
	while(*(p+len)){
		len++;
	}	
	return len;
}

char *mystrncpy(char *dest, const char *src, size_t n){
	int i;
	for(i = 0; i < n && src[i] != '\0'; i++){
		dest[i] = src[i]; 
	}
	for(; i < n ; i++){
		dest[i] = '\0';
	}
	return dest;
}

char *mystrncat(char *dest, const char *src, size_t n){
	int dest_len = mystrlen(dest);
	int i;
	for(i = 0; i < n && src[i] ; i++){
		dest[dest_len + i] = src[i];
	}
	dest[dest_len + i] = '\0';
	
	return dest;
}

int mystrcmp(const char *s1, const char *s2){
	while(*s1 == *s2 && *s1 != '\0'){
		s1++;
		s2++;
	}
	return *s1 -*s2;
}


